Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes

ABSTRACT

A method for searching for information in a relational database includes: identifying a subset of attributes from attributes for each record in the relational database, the subset of attributes including a plurality of search attributes and a plurality of search summary attributes; extracting, via a processor, the subset of identified attributes from each record; creating in a cloud-based non-relational database platform an index instance corresponding to each record in the relational database, wherein each index instance in the cloud-based non-relational database includes the subset of identified attributes indexed to a corresponding record in the relational database; and in response to receiving a search request that includes one or more search attributes, searching the index instances in the cloud-based non-relational database for corresponding records in the relational database; and providing search results that include information from the corresponding records in the relational database, wherein the information is associated with the plurality of search summary attributes.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.16/003,735, filed Jun. 8, 2018, which is incorporated herein byreference in its entirety.

BACKGROUND

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims in this application and are notadmitted to be prior art by inclusion in this section.

A relational database is a collection of data items organized as a setof formally-described tables from which data can be accessed orreassembled in many different ways without having to reorganize thedatabase tables. A database may be a repository for storing, managing,and distributing electronic data, and may store any of the dataresources produced and/or utilized by an individual and/or anorganization. Data resources may include files, documents, records, userprofiles, etc., or portions thereof.

Performance is critical to user experience of a search applicationbecause the user often needs to find the records of interest quickly,for example in a customer service scenario, when interacting with thesystem. However, system performance degrades with a conventionaldatabase as the volume of stored records grows and the search criteriaincrease in both quantity and complexity. Eventually, a search query mayeither take a long time to return the result or timeout with no resultat all. Adding restrictions in search parameters, reorganizing databasetables, or maintaining the record volume may temporarily mitigate theissue. These measures, however, are not always plausible or do not solvethe long term problem.

SUMMARY

Systems and methods for scalable search using microservice and cloudbased search with records indexes are provided.

According to various aspects there is provided a method for searchingfor information maintained in a relational database. In some aspects,the method may include: identifying a subset of attributes from a totalnumber of attributes for each record in the relational database, whereinthe subset of attributes may include a plurality of search attributesand a plurality of search summary attributes; extracting, via aprocessor, the subset of identified attributes from each record in therelational database; creating in a cloud-based non-relational databaseplatform an index instance corresponding to each record in therelational database, wherein each index instance in the cloud-basednon-relational database platform may include the subset of identifiedattributes indexed to a corresponding record in the relational database;in response to receiving a search request that includes one or moresearch attributes, searching the index instances in the cloud-basednon-relational database platform for corresponding records in therelational database; and providing search results that includeinformation from the corresponding records in the relational database.The information may be associated with the plurality of search summaryattributes.

The method may further include: determining whether a user-generatedsearch request includes a record ID; when the user-generated searchrequest includes a record ID, searching the relational database; andwhen the user-generated search request includes the one or more searchattributes, then generating the search request and directing the searchrequest to the cloud-based non-relational database platform.

The method may further include: identifying an additional searchattribute from the total number of attributes for each record in therelational database; adding the additional search attribute to theplurality of search attributes and the subset of identified attributes;and modifying the index instances in the cloud-based non-relationaldatabase platform to add the additional search attribute.

The method may further include: determining whether the additionalsearch attribute is an attribute updated more frequently than a periodicupdate of the relational database; and in response to determining thatthe additional search attribute is an attribute updated more frequentlythan a periodic update of the relational database, preventingmodification of the index instances in the cloud-based non-relationaldatabase platform to add the additional search attribute. When thecloud-based non-relational database platform is not modified to add theadditional search attribute, the method may further include performing asearch for records containing the additional search attribute in therelational database based on the search results from the search of thecloud-based non-relational database.

The method may further include: performing a subsequent search of therelational database based on record IDs returned in the search resultssummary for the search in the cloud-based non-relational databaseplatform.

According to various aspects there is provided a system for searchingfor information maintained in a relational database platform. In someaspects, the system may include: a relational database platformconfigured to store a plurality of records containing a plurality ofattributes; a cloud-based non-relational database platform configured tostore a plurality of index instances, each of the plurality of indexinstances corresponding to one of the plurality of records andcontaining a subset of attributes from a total number of attributes foreach of the plurality of record, wherein the subset of attributes mayinclude a plurality of search attributes and a plurality of searchsummary attributes; a backend processor configured to extract the subsetof attributes from each record in the relational database; and amicroservice residing in the cloud configured to create in thecloud-based non-relational database platform the plurality of indexinstances. In response to receiving a search request that includes oneor more search attributes, the backend processor causes the microserviceto search the index instances in the cloud-based non-relational databaseplatform for corresponding records in the relational database; and themicroservice provides search results that include information from thecorresponding records in the relational database. The information may beassociated with the plurality of search summary attributes.

The backend processor may be further configured to: determine whether auser-generated search request includes a record ID as a search requestattribute; in response to determining that the user-generated searchrequest includes a record ID, search the relational database for acorresponding record; and in response to determining that theuser-generated search request includes the one or more search attributesother than the record ID, generate the search request and direct thesearch request to the microservice to search the cloud-basednon-relational database platform.

The backend processor may be further configured to: identify anadditional search attribute from the total number of attributes for eachrecord in the relational database; add the additional search attributeto the plurality of search attributes and the subset of identifiedattributes; and communicate instructions to the microservice to modifythe index instances in the cloud-based non-relational database platformto add the additional search attribute.

The backend processor may be further configured to: identify anadditional search attribute from the total number of attributes for eachrecord in the relational database; determine whether the additionalsearch attribute is an attribute updated more frequently than a periodicupdate of the relational database; and in response to determining thatthe additional search attribute is an attribute updated more frequentlythan a periodic update of the relational database, communicateinstructions to the microservice to maintain the index instances in thecloud-based non-relational database platform to include the subset ofadd the additional search attributes. When the cloud-basednon-relational database platform is not modified to add the additionalsearch attribute, the backend processor may be further configured toperform a search for records containing the additional search attributein the relational database based on the search results communicated bythe microservice to the backend processor from the search of thecloud-based non-relational database.

The backend processor may be further configured to: perform a subsequentsearch of the relational database based on record IDs returned in thesearch results summary by the microservice for the search in thecloud-based non-relational database platform.

According to various aspects there is provided a method for searchingfor information maintained in a relational database. In some aspects,the method may include: creating in a non-relational database in acloud-based search platform an index instance corresponding to eachrecord in the relational database, wherein each index instance in thenon-relational database may include a subset of identified attributesfrom attributes for each record, each index instance indexed to acorresponding record in the relational database; receiving a searchrequest for the relational database, the search request including one ormore attributes from the subset of identified attributes; redirecting,via a processor, the search request to the non-relational database;performing a search in the non-relational database based on theattributes included in the search request; and returning a searchresults summary from the search in the non-relational database. Thesearch results summary may include record IDs and attributes for one ormore index instances corresponding to one or more records in therelational database.

The method may further include: preselecting from the subset ofidentified attributes the one or more attributes returned in the searchresults summary. One or more of the attributes returned in the searchresults summary may be different than the attributes included in thesearch request.

The method may further include: reformatting the redirected searchrequest to provide instructions compatible with the non-relationaldatabase in the cloud-based search platform, and formatting the searchresults summary returned from the non-relational database similarly tosearch results returned from a search of the relational database.

The method may further include: performing a subsequent search of therelational database based on the record IDs returned in the searchresults summary for the search in the non-relational database.

The method may further include: identifying, from the attributes for therecords in the relational database, an additional search attribute notincluded in the subset of identified attributes; and modifying the indexinstances in the non-relational database to include the additionalsearch attribute.

The method may further include: identifying, from the attributes for therecords in the relational database, an additional search attribute notincluded in the subset of identified attributes; and performing asubsequent search in the relational database for records containing theadditional search attribute in the relational database based on thesearch results summary from the non-relational database search.

Other features and advantages should be apparent from the followingdescription which illustrates by way of example aspects of the variousteachings of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects and features of the various embodiments will be more apparent bydescribing examples with reference to the accompanying drawings, inwhich:

FIG. 1 is a block diagram of a system for scalable search using amicroservice and cloud based search platform with records indexesaccording to various aspects of the present disclosure;

FIG. 2A is a representative diagram of a record in the relationaldatabase;

FIG. 2B is a representative diagram of an index instance according tovarious aspects of the present disclosure;

FIG. 3A is a representative diagram of search criteria specified in asearch query according to various aspects of the present disclosure;

FIG. 3B is a representative diagram of search summary results returnedin response to a search performed based on the search criteria of FIG.3A according to various aspects of the present disclosure;

FIG. 4 is a flowchart of a method for scalable search using amicroservice and cloud based search platform with records indexesaccording to various aspects of the present disclosure; and

FIG. 5 is a flowchart of another method for scalable search using amicroservice and cloud based search platform with records indexesaccording to various aspects of the present disclosure.

DETAILED DESCRIPTION

While certain embodiments are described, these embodiments are presentedby way of example only, and are not intended to limit the scope ofprotection. The apparatuses, methods, and systems described herein maybe embodied in a variety of other forms. Furthermore, various omissions,substitutions, and changes in the form of the example methods andsystems described herein may be made without departing from the scope ofprotection.

In accordance with various aspects of the present disclosure, systemsand methods for scalable search using a microservice and cloud basedsearch platform with records indexes are provided. A cloud-based searchplatform, for example, the Elasticsearch® platform or anothercloud-based search platform, may contain index instances in anon-relational database that are indexed to records contained in arelational database. A search microservice may receive search queriesdirected to the relational database that have been redirected to searchthe index instances contained in the non-relational database. Themicroservice may return a search results summary from a search of theindex instances in the non-relational database that identify the recordsin the relational database matching the search query.

FIG. 1 is a block diagram of a system 100 for scalable search using amicroservice and cloud based search platform with records indexesaccording to various embodiments. As illustrated in FIG. 1, the system100 may include a computing system 102 including a relational database105, a backend processor 110, a search microservice 160, and acloud-based search platform 150. The cloud-based search platform 150 mayinclude a non-relational database 155. The non-relational database 155may be a cloud-based distributed database. The non-relational database155 may contain index instances 156 of records in the relationaldatabase 105. The non-relational database 155 may initially be createdbased on a subset of a total number of attributes contained in each ofthe plurality of records maintained in the relational database 105 byany suitable programming method, for example, but not limited to datamovement as a platform (DMaaP), as will be understood by those ofordinary skill in the art.

The non-relational database 155 may reside in the cloud and may containa plurality of index instances, each index instance being indexed to oneof a plurality of records maintained in the relational database 105.Information contained in the index instances may be used by thecloud-based search platform 150 to search the non-relational database155 to pinpoint the records of interest in the relational database 105.FIG. 2A is a representative diagram of a record 200 in the relationaldatabase 105. Referring to FIG. 2A, each record 200 in the relationaldatabase 105 is composed of a plurality of attributes. Each attributedefines one or more pieces of data contained in the record 200. Forexample, in FIG. 1, Attribute1 may define the record ID of the record200. The attributes contained in each record 200 may be distributedamong a plurality of related tables 205, 210, 215, 220 in the relationaldatabase 105.

Tables in the relational database 105 may be related by primary orforeign keys that define the relationships. For example, in addition tobeing the record ID, Attribute 1 in Table 1 may be a primary key forTable 1. Attribute2 in Table 1 210 may be a foreign key for the Table 2210. Attribute4 in Table 1 210 may be a foreign key for Table 3 215.Attribute7 in Table 2 210 may be a foreign key for Table 3 215.Attribute12 in Table 3 215 may be a foreign key for Table 4 220.Further, Attribute6 may be a primary key for Table 2 210, Attribute10may be a primary key for Table 3 215, and Attribute13 may be a primarykey for Table 4 220. In accordance with various aspects of the presentdisclosure, a subset of the total number of attributes contained in eachof the plurality of records in the relational database 105 may becontained in a corresponding index instance in the non-relationaldatabase 155. One of ordinary skill in the art will appreciate that thedata indicated for the above attributes is merely exemplary.

FIG. 2B is a representative diagram of an index instance 250 inaccordance with various aspects of the present disclosure. The indexinstance 250 in the non-relational database 155 may reside in the cloudand may include a specified subset of attributes from the total numberof attributes for the record 200 in the relational database 105.Referring to FIG. 2B, the index instance 250 includes Attributes 1, 2,4-7, 9, 10, 12, 13, and 16 from the record 200 in the relationaldatabase 105. The specified attributes in the index instance 250 may bebased on user requirements, i.e., frequent search attributes, forexample, but not limited to, order type, order status, creation date,etc. Primary and foreign keys may be included in the specifiedattributes. The specified attributes included in the index instance 250may be updated to add and/or remove attributed based, for example, onuser requirements. The data corresponding to the attributes in the indexinstances in the non-relational database 155 may be synchronized withthe data in the records of the relational database 105. One of ordinaryskill in the art will appreciate that the attributes included in theindex instance 250 of FIG. 2B are merely exemplary.

In accordance with various aspects of present disclosure, the attributesincluded in the index instance 250 may include a predefined set ofsearch criteria and/or a predefined set of search summary results from atotal number of attributes for each record maintained in the relationaldatabase 105. The predefined set of search criteria and/or thepredefined set of search summary results may include all of theattributes in the index instance 250 as well as some additionalattributes contained in the records maintained in the relationaldatabase 105. User requirements, for example, but not limited to, ordertype, order status, creation date, other frequent search attributes,etc., may determine a subset of attributes specified by a user as thesearch criteria for a search query. Similarly, user requirements maydetermine a subset of attributes specified by a user to be displayed inthe search results summary. Primary and foreign keys may be included inthe search criteria and/or search summary results, but are not requiredto be included.

A subset of the predefined set of search criteria may be specified in asearch query by a user. FIG. 3A is a representative diagram of searchcriteria 300 specified in a query in accordance with various aspects ofthe present disclosure. Referring to FIG. 3A, Attributes 5, 9, and 12may be specified in the search query by a user. Attributes 5, 9, and 12are a subset of Attributes 1, 2, 4-7, 9, 10, 12, 13, and 16 included inthe index instance 250. One of ordinary skill in the art will appreciatethat this subset of attributes is merely exemplary and that otherattributes may be specified by a search query. In addition, one ofordinary skill in the art will appreciate that more or less than threeattributes may be specified by a search query without departing from thescope of the present disclosure.

Similarly, a subset of the attributes in the predefined set of searchsummary results returned by a search of the non-relational database 155may be specified by a user. The search summary results may be specifiedfrom the subset of attributes included in the index instance 250. Thesearch summary results may include some, none, or all of the attributesspecified in the search query. FIG. 3B is a representative diagram ofsearch summary results 350 returned in response to a search performedbased on the search criteria of FIG. 3A according to various aspects ofthe present disclosure.

Referring to FIG. 3B, the search summary results for each index instancematching the search query may return Attributes 1, 5, 10, 12, and 16 asspecified by a user. Note that while Attribute9 was specified in thesearch criteria, Attribute9 was not specified by the user to bedisplayed in the search summary results. In the example of FIG. 3B, thesearch summary results include three index instances 355, 360, 365.Attribute1 of each index instance may correspond to a record ID of arecord maintained in the relational database 105. After identifyingappropriate records from the search of the index instances in thenon-relational database 155, a user may directly query the relationaldatabase 105 for one or more of the specific record IDs.

Referring again to FIG. 1, the microservice 160 may be a server for therecord queries. The microservice 160 may reside in the cloud. Themicroservice 160 may support existing search capabilities of thenon-relational database 155 as well as future expansion to additionalattributes and/or search criteria. Applications may communicate with themicroservice 160 via an application programming interface, for example,but not limited to, a representational state transfer (RESTful) API. Themicroservice 160 may receive search queries based on specified searchcriteria and perform the requested search on the index instances in thenon-relational database 155 in cloud-based search platform 150. Uponcompletion of the search of the index instances in the non-relationaldatabase 155, the microservice 160 may return the search results summaryincluding the attributes specified by the user for the search resultssummary.

In accordance with various aspects of the present disclosure, if anattribute that is not included in the index instances is specified in asearch query, an update script may pull the attribute and associateddata in all the records of the relational database 105 and send newversions of index instances including the attribute and data to thecloud-based search platform 150. After the new versions of the indexinstances are stored in the non-relational database 155 in thecloud-based search platform 150, the microservice 160 may perform thesearch of the non-relational database 155 including the newly addedattribute in the search criteria. Alternatively, if the attribute is onethat is frequently changed in the relational database 105 (e.g., morefrequently than the periodic update of the relational database), theattribute may be restricted from the search criteria. Accordingly, anysearch performed on the non-relational database 155 in the cloud-basedsearch platform 150 would exclude the specific attribute.

As a further alternative, if an attribute that is not included in theindex instances is specified in a search query, a search includingattributes in the query that are available in the index instances may beperformed on the non-relational database 155. A subsequent search of therecords in the relational database 105 identified in the search summaryresults for the search of the non-relational database 155 may then beperformed using only the record IDs and the missing attribute to limitthe search.

In accordance with various aspects of the present disclosure, anapplication operating on the backend processor 110 may interface withthe microservice 160 operating in the cloud. The backend processor 110may receive a search request 111 (i.e., a query) from a client (e.g., aterminal, computer, mobile device, etc.) directed to the relationaldatabase 105. The search request 111 may include attributes from therecords in the relational database 105 that are also included in theindex instances in the non-relational database 155. If the backendprocessor 110 determines that the attributes in the search query arevalid (i.e., the attributes are included in the index instances in thenon-relational database 105), the backend processor 110 may reformat thesearch queries as instructions recognized by the API, for example, butnot limited to, the RESTful API, for the microservice 160 and redirectthe reformatted queries 112 to the microservice 160.

Upon completion of the search of the non-relational database 155 on thecloud-based search platform 150 by the microservice 160, the backendprocessor 110 may receive the search results summary from themicroservice 160. The backend processor 110 may format the searchresults summary similarly to a form of the search results summaryreceived from a direct search of the relational database 105.Additionally, the backend processor 110 may direct a specific attributesearch 113, for example, but not limited to, a record ID, directly tothe relational database 105 since such a specific attribute search maybe conducted quickly on the relational database 105.

Further, the backend processor 110 may receive and process modificationrequests 115 from a client (e.g., a terminal, computer, mobile device,etc.). The modification request 115 may include for example, but notlimited to, a request to create, update, or delete a record from therelational database 105. In addition to directing instructions 117 tothe relational database 105 to cause the requested actions to beperformed, the backend processor 110 may run the update script toreformat the modification request 115 as instructions recognized by theAPI, for example, but not limited to, the RESTful API, for themicroservice 160, and redirect the reformatted modification request 116to the microservice 160, thereby maintaining synchronization between therecords in the relational database 105 and the index instances in thenon-relational database 155. The backend processor 110 may cause theindex instances in the non-relational database 155 to be synchronizedwith the record in the relational database 105 on a periodic basis, forexample, every week or another time period.

FIG. 4 is a flowchart of a method 400 for scalable search using amicroservice and cloud based search platform with records indexes inaccordance with various aspects of the present disclosure. Referring toFIG. 4, at block 410 a search query for the relational database 105 maybe received. For example, an application operating on the backendprocessor 110 may receive a search query 111 from a client device. Thesearch query 111 may include attributes corresponding to data containedin the relational database 105.

At block 415, the backend processor 110 may determine whether theattributes contained in the search query 111 are valid. For example, thebackend processor 110 may determine whether the attributes in the searchquery 111 correspond to attributes contained in the index instances inthe non-relational database 155. In response to determining that theattributes in the search query 111 are valid (415-Y), at block 440 thebackend processor 110 may reformat the search query 111. For example,the backend processor 110 may reformat the search query 111 asinstructions recognized by the API (e.g., the RESTful API) for themicroservice 160. At block 445, the backend processor 110 may redirectthe search query 111 to the microservice 160 for the non-relationaldatabase 105.

At block 450, the microservice 160 may cause a search of the indexinstances in the non-relational database 105 to be performed inaccordance with the search query 111. At block 455, the microservice 160may cause the search results to be returned to the backend processor110. At block 460, the backend processor 110 may format the searchresults returned from the microservice 160. For example, the backendprocessor 110 may format the search results similarly to a form of thesearch results summary received from a direct search of the relationaldatabase 105.

Returning to block 415, in response to determining that the attributesin the search query 111 are not valid (415-N), at block 420 the backendprocessor 110 may determine whether the invalid attributes are suitablefor adding to the index instances. For example, if the attributes areassociated with data that is frequently updated in the relationaldatabase 105 (i.e., more frequently than a periodic update of therelational database 105), then it may not be suitable to add theattribute since the addition may trigger excessive updates. In responseto determining that the invalid attributes are frequently updated in therelational database 105 (420-Y), at block 425 the backend processor 110may exclude the invalid attributes from the search query 111.

In response to determining that the invalid attributes are notfrequently updated in the relational database 105 (420-N), at block 430the backend processor 110 may generate modification instructions to thenon-relational database 155. At block 435, the backend processor 110 maycause the attributes to be added to the non-relational database 155. Forexample, the backend processor 110 may cause the attributes andcorresponding data to be read from the relational database 105 andwritten to the corresponding index instances in the non-relationaldatabase 155.

At block 440 the backend processor 110 may reformat the search query.For example, the backend processor 110 may reformat the search query 111as instructions recognized by the API (e.g., the RESTful API) for themicroservice 160. At block 445, the backend processor 110 may redirectthe search query 111 to the microservice 160 for the non-relationaldatabase 105.

At block 450, the microservice 160 may cause a search of the indexinstances in the non-relational database 105 to be performed inaccordance with the search query 111. At block 455, the microservice 160may cause the search results to be returned to the backend processor110. At block 460, the backend processor 110 may format the searchresults returned from the microservice 160. For example, the backendprocessor 110 may format the search results similarly to a form of thesearch results summary received from a direct search of the relationaldatabase 105. At block 465, the backend processor 110 may return thesearch summary results to the client.

FIG. 5 is a flowchart of a method 500 for scalable search using amicroservice and cloud based search platform with records indexes inaccordance with various aspects of the present disclosure. Referring toFIG. 5, at block 510 a search query for the relational database 105 maybe received.

At block 515, the backend processor 110 may determine whether theattributes contained in the search query 111 are valid. For example, thebackend processor 110 may determine whether the attributes in the searchquery 111 correspond to attributes contained in the index instances inthe non-relational database 155. In response to determining that theattributes in the search query 111 are not valid (515-N), at block 520the backend processor 110 may exclude the invalid attribute from thesearch query 111. In response to determining that the attributes in thesearch query 111 are valid (515-Y), at block 525 the backend processor110 may reformat the search query 111. For example, the backendprocessor 110 may reformat the search query 111 as instructionsrecognized by the API (e.g., the RESTful API) for the microservice 160.At block 530, the backend processor 110 may redirect the search query111 to the microservice 160 for the non-relational database 105.

At block 535, the microservice 160 may cause a search of the indexinstances in the non-relational database 105 to be performed inaccordance with the search query 111. At block 540, the microservice 160may cause the search results to be returned to the backend processor110. At block 545, the backend processor 110 may determine whether anattribute was excluded from the search query 111. In response todetermining that an attribute was excluded from the search query 111(545-Y), at block 550 the backend processor 110 may cause the relationaldatabase 105 to be searched for records included in the search summaryresults that match the attribute excluded from the search of thenon-relational database 155. At block 555, the backend processor 110 mayreturn the search summary results to the client.

In response to determining that an attribute was not excluded from thesearch query 111 (545-N), at block 560, the backend processor 110 mayformat the search results returned from the microservice 160. Forexample, the backend processor 110 may format the search resultssimilarly to a form of the search results summary received from a directsearch of the relational database 105. At block 555, the backendprocessor 110 may return the search summary results to the client.

The methods 400 and 500, respectively, may be embodied on anon-transitory computer readable medium, for example, but not limitedto, a memory or other non-transitory computer readable medium known tothose of skill in the art, having stored therein a program includingcomputer executable instructions for making a processor, computer, orother programmable device execute the operations of the methods.

The examples and embodiments described herein are for illustrativepurposes only. Various modifications or changes in light thereof will beapparent to persons skilled in the art. These are to be included withinthe spirit and purview of this application, and the scope of theappended claims, which follow.

What is claimed is:
 1. A method, comprising: receiving, by a processingsystem including a processor, a search query directed to a relationaldatabase, wherein the search query includes one or more searchattributes from records in the relational database; verifying, by theprocessing system, that the one or more search attributes are includedin an index instance in a cloud-based non-relational database;reformatting, by the processing system, the search query as instructionsrecognized by an application programming interface of a cloud-basedmicroservice; submitting, by the processing system, the instructions tothe application programming interface to cause the microservice tosearch the index instance in the cloud-based non-relational database forcorresponding records in the relational database, wherein the searchingthe index instance is responsive to determining that a first group ofthe one or more search attributes included in the search querycorrespond to a second group of attributes contained in the indexinstance in the cloud-based non-relational database; receiving, by theprocessing system, search results from the application programminginterface of the cloud-based microservice, wherein the search resultsinclude one or more record identifiers; and searching, by the processingsystem, the relational database based on the one or more recordidentifiers.
 2. The method of claim 1, further comprising: identifying,by the processing system, an additional search attribute included in thesearch query, wherein the additional search attribute is not included inthe index instance; and removing, by the processing system, theadditional search attribute from the search query; wherein the searchingthe relational database comprises searching the relational databasebased on the one or more record identifiers and the additional searchattribute.
 3. The method of claim 1, further comprising: identifying, bythe processing system, an additional search attribute included in thesearch query, wherein the additional search attribute is not included inthe index instance; and communicating, by the processing system,instructions to the microservice to modify the index instance in thecloud-based non-relational database to add the additional searchattribute.
 4. The method of claim 1, further comprising: determining, bythe processing system, that at least one of the one or more searchattributes is an attribute updated more frequently than a periodicupdate of the relational database; and removing, by the processingsystem, the at least one of the one or more search attributes from thesearch query; wherein the searching the relational database comprisessearching the relational database based on the one or more recordidentifiers and the at least one of the one or more search attributes.5. The method of claim 1, further comprising: identifying, by theprocessing system, an additional search attribute included in the searchquery; determining, by the processing system, that additional searchattribute is missing from the search results; and wherein the searchingthe relational database comprises searching the relational databasebased on the one or more record identifiers and the additional searchattribute.
 6. The method of claim 1, wherein one or more attributes inthe search results are different than the one or more search attributesincluded in the search query.
 7. A system comprising: a processor; and amemory storing executable instructions that, when executed by theprocessor, perform operations comprising: receiving a search querydirected to a relational database, wherein the search query includes oneor more search attributes from records in the relational database;verifying that the one or more search attributes are included in anindex instance in a cloud-based non-relational database; reformattingthe search query as instructions recognized by an applicationprogramming interface of a cloud-based microservice; submitting theinstructions to the application programming interface to cause themicroservice to search the index instance in the cloud-basednon-relational database for corresponding records in the relationaldatabase, wherein the searching the index instance is responsive todetermining that a first group of the one or more search attributesincluded in the search query correspond to a second group of attributescontained in the index instance in the cloud-based non-relationaldatabase; receiving search results from the application programminginterface of the cloud-based microservice, wherein the search resultsinclude one or more record identifiers; and searching the relationaldatabase based on the one or more record identifiers.
 8. The system ofclaim 7, wherein the operations further comprise: identifying anadditional search attribute included in the search query, wherein theadditional search attribute is not included in the index instance; andremoving the additional search attribute from the search query; whereinthe searching the relational database comprises searching the relationaldatabase based on the one or more record identifiers and the additionalsearch attribute.
 9. The system of claim 7, wherein the operationsfurther comprise: identifying an additional search attribute included inthe search query, wherein the additional search attribute is notincluded in the index instance; and communicating instructions to themicroservice to modify the index instance in the cloud-basednon-relational database to add the additional search attribute.
 10. Thesystem of claim 7, wherein the operations further comprise: determiningthat at least one of the one or more search attributes is an attributeupdated more frequently than a periodic update of the relationaldatabase; and removing the at least one of the one or more searchattributes from the search query; wherein the searching the relationaldatabase comprises searching the relational database based on the one ormore record identifiers and the at least one of the one or more searchattributes.
 11. The system of claim 7, wherein the operations furthercomprise: identifying an additional search attribute included in thesearch query; determining that additional search attribute is missingfrom the search results; and wherein the searching the relationaldatabase comprises searching the relational database based on the one ormore record identifiers and the additional search attribute.
 12. Thesystem of claim 7, wherein one or more attributes in the search resultsare different than the one or more search attributes included in thesearch query.
 13. The system of claim 12, wherein the operations furthercomprise communicating instructions to the microservice to modify theindex instance in the cloud-based non-relational database to add the oneor more attributes in the search results that are different than the oneor more search attributes included in the search query.
 14. Anon-transitory, machine-readable medium, comprising executableinstructions that, when executed by a processing system including aprocessor, facilitate performance of operations, the operationscomprising: a processor; and a memory storing executable instructionsthat, when executed by the processor, perform operations comprising:receiving a search query directed to a relational database, wherein thesearch query includes one or more search attributes from records in therelational database; verifying that the one or more search attributesare included in an index instance in a cloud-based non-relationaldatabase; reformatting the search query as instructions recognized by anapplication programming interface of a cloud-based microservice;submitting the instructions to the application programming interface tocause the microservice to search the index instance in the cloud-basednon-relational database for corresponding records in the relationaldatabase, wherein the searching the index instance is responsive todetermining that a first group of the one or more search attributesincluded in the search query correspond to a second group of attributescontained in the index instance in the cloud-based non-relationaldatabase; receiving search results from the application programminginterface of the cloud-based microservice, wherein the search resultsinclude one or more record identifiers; and searching the relationaldatabase based on the one or more record identifiers.
 15. Thenon-transitory, machine-readable medium of claim 14, wherein theoperations further comprise: identifying an additional search attributeincluded in the search query, wherein the additional search attribute isnot included in the index instance; and removing the additional searchattribute from the search query; wherein the searching the relationaldatabase comprises searching the relational database based on the one ormore record identifiers and the additional search attribute.
 16. Thenon-transitory, machine-readable medium of claim 14, wherein theoperations further comprise: identifying an additional search attributeincluded in the search query, wherein the additional search attribute isnot included in the index instance; and communicating instructions tothe microservice to modify the index instance in the cloud-basednon-relational database to add the additional search attribute.
 17. Thenon-transitory, machine-readable medium of claim 14, wherein theoperations further comprise: determining that at least one of the one ormore search attributes is an attribute updated more frequently than aperiodic update of the relational database; and removing the at leastone of the one or more search attributes from the search query; whereinthe searching the relational database comprises searching the relationaldatabase based on the one or more record identifiers and the at leastone of the one or more search attributes.
 18. The non-transitory,machine-readable medium of claim 14, wherein the operations furthercomprise: identifying an additional search attribute included in thesearch query; determining that additional search attribute is missingfrom the search results; and wherein the searching the relationaldatabase comprises searching the relational database based on the one ormore record identifiers and the additional search attribute.
 19. Thenon-transitory, machine-readable medium of claim 14, wherein one or moreattributes in the search results are different than the one or moresearch attributes included in the search query.
 20. The non-transitory,machine-readable medium of claim 19, wherein the operations furthercomprise communicating instructions to the microservice to modify theindex instance in the cloud-based non-relational database to add the oneor more attributes in the search results that are different than the oneor more search attributes included in the search query.